home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / mui / bcc_src.lha / Parser / FParse.h < prev    next >
C/C++ Source or Header  |  1997-07-14  |  881b  |  58 lines

  1. #ifndef FPARSE_H
  2. #define FPARSE_H
  3.  
  4. #include <string.h>
  5. #include "Str.h"
  6.  
  7. #define NON 0
  8. #define SEP    1
  9. #define ALN    2
  10. #define BRC    4
  11. #define PNT 8
  12. #define OPR 16
  13. #define CNT 32
  14.  
  15. struct tpos {
  16.     char *Tok;
  17.     short TokLen;
  18.     short TokType;
  19.  
  20.     long LineN;
  21.     short MBracket, CBracket, SBracket;
  22.     
  23.     tpos( void );
  24.     tpos &operator=( tpos &tp );
  25.     void reset( void );
  26.     short used( void ) { return Tok ? 1 : 0; }
  27. };
  28.     
  29. class FParse : public tpos {
  30.  
  31.     char *Data;
  32.     long Len;
  33.  
  34.     void ClearData( void ) { Data = 0; Len = 0; }
  35.  
  36. public:
  37.  
  38.     String Name;
  39.     short ErrorBuf;
  40.     struct tpos Prev, Survey, SurveyPrev;
  41.  
  42.     FParse() { ClearData(); }
  43.     ~FParse();
  44.     short Load( char *name );
  45.     short Next( void );
  46.     short OK( void ) { return Len ? 1 : 0; }
  47.     void Error( short num );
  48.     
  49.     void StartSurvey();
  50.     void StopSurvey();
  51.     void Reset( void ) { Tok = Data; TokLen = 0; }
  52.     
  53.     virtual char **ErrorStrings( void );
  54.     
  55. };
  56.  
  57. #endif
  58.